#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Word样式复制器演示脚本
展示工具的主要功能和用法
"""

import os
import sys
import subprocess
import json
from pathlib import Path

def create_demo_docs():
    """创建演示用的Word文档"""
    print("📝 创建演示文档...")
    
    # 创建简单的HTML文件作为演示
    demo_html_content = """
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <style>
            h1 { font-family: 微软雅黑; font-size: 24pt; color: #0066CC; }
            h2 { font-family: 宋体; font-size: 18pt; color: #333333; }
            p { font-family: 仿宋; font-size: 12pt; color: #000000; }
            .highlight { background-color: #FFFF00; }
        </style>
    </head>
    <body>
        <h1>演示文档标题</h1>
        <p>这是一个演示段落，使用宋体12号字。</p>
        <h2>二级标题</h2>
        <p class="highlight">高亮显示的段落内容。</p>
    </body>
    </html>
    """
    
    # 创建演示目录
    demo_dir = Path("/workspace/demo")
    demo_dir.mkdir(exist_ok=True)
    
    # 保存HTML文件
    html_file = demo_dir / "demo_template.html"
    with open(html_file, 'w', encoding='utf-8') as f:
        f.write(demo_html_content)
    
    print(f"✅ 创建演示文件: {html_file}")
    return str(html_file)

def check_pandoc():
    """检查Pandoc安装"""
    try:
        result = subprocess.run(['pandoc', '--version'], 
                              capture_output=True, text=True)
        if result.returncode == 0:
            print("✅ Pandoc已安装")
            return True
    except FileNotFoundError:
        pass
    
    print("❌ Pandoc未安装")
    print("请安装Pandoc:")
    print("  Ubuntu/Debian: sudo apt-get install pandoc")
    print("  macOS: brew install pandoc")
    print("  Windows: https://pandoc.org/installing.html")
    return False

def demo_style_extraction():
    """演示样式抽取功能"""
    print("\n🎯 演示: 样式抽取功能")
    print("-" * 40)
    
    demo_file = create_demo_docs()
    
    # 使用Pandoc转换演示
    try:
        output_file = "/workspace/demo/demo_styles.json"
        cmd = [
            'pandoc', demo_file,
            '-o', output_file,
            '--embed-resources',
            '--standalone'
        ]
        
        result = subprocess.run(cmd, capture_output=True, text=True)
        if result.returncode == 0:
            print("✅ 样式抽取演示完成")
            print(f"📁 输出文件: {output_file}")
            
            # 读取并显示结果
            if os.path.exists(output_file):
                with open(output_file, 'r', encoding='utf-8') as f:
                    content = f.read()
                print(f"📊 文件大小: {len(content)} 字符")
        else:
            print(f"❌ 转换失败: {result.stderr}")
            
    except Exception as e:
        print(f"❌ 演示失败: {str(e)}")

def demo_interactive_mode():
    """演示交互式模式"""
    print("\n💬 演示: 交互式模式")
    print("-" * 40)
    print("交互式模式提供以下功能:")
    print("1. 抽取单个文档样式")
    print("2. 批量抽取文档样式") 
    print("3. 应用样式到单个文档")
    print("4. 批量应用样式")
    print("5. 查看样式分析")
    print("6. 生成执行报告")
    print("7. 退出")
    print("\n启动命令: python3 word_style_copier.py --interactive")

def demo_batch_processing():
    """演示批量处理功能"""
    print("\n📦 演示: 批量处理功能")
    print("-" * 40)
    print("批量处理示例:")
    print("# 批量抽取多个文档样式")
    print("python3 word_style_copier.py --batch-extract doc1.docx doc2.docx doc3.docx")
    print()
    print("# 批量应用样式到多个文档")
    print("python3 word_style_copier.py --batch-apply template.docx report1.docx report2.docx")
    print()
    print("# 生成详细报告")
    print("python3 word_style_copier.py --batch-apply template.docx target1.docx target2.docx --output report.md")

def demo_style_analysis():
    """演示样式分析功能"""
    print("\n📊 演示: 样式分析功能")
    print("-" * 40)
    print("样式分析包含以下内容:")
    print("• 字体家族统计和列表")
    print("• 字体大小分布")
    print("• 颜色方案分析")
    print("• CSS样式规则")
    print("• 段落和标题格式")
    print("• 文档元信息")
    
    # 创建示例样式数据
    sample_styles = {
        "font_families": ["微软雅黑", "宋体", "仿宋", "黑体"],
        "font_sizes": ["12pt", "14pt", "16pt", "18pt", "24pt"],
        "colors": ["#000000", "#0066CC", "#FF0000", "#00CC00", "#FFFF00"],
        "css_styles": [
            "h1 { font-family: 微软雅黑; font-size: 24pt; color: #0066CC; }",
            "h2 { font-family: 宋体; font-size: 18pt; color: #333333; }",
            "p { font-family: 仿宋; font-size: 12pt; color: #000000; }"
        ]
    }
    
    # 保存示例样式
    sample_file = "/workspace/demo/sample_styles.json"
    with open(sample_file, 'w', encoding='utf-8') as f:
        json.dump(sample_styles, f, indent=2, ensure_ascii=False)
    
    print(f"\n📁 示例样式文件: {sample_file}")

def demo_report_generation():
    """演示报告生成功能"""
    print("\n📋 演示: 报告生成功能")
    print("-" * 40)
    print("报告包含:")
    print("• 执行概览统计")
    print("• 逐文档处理结果")
    print("• 样式应用详情")
    print("• 错误信息记录")
    print("• 备份文件位置")
    
    # 创建示例报告
    sample_report = """# Word样式复制器执行报告
生成时间: 2025-10-25 16:08:29

## 概览
- 总处理文档数: 3
- 成功应用: 2
- 失败数量: 1

## 详细结果

### document1.docx
路径: `/workspace/document1.docx`
状态: ✅ 成功
应用样式统计:
- 字体家族: 4 种
- 字体大小: 5 种
- 颜色: 5 种
- CSS规则: 3 条
备份文件: `/workspace/document1.docx.backup_20251025_160829`

### document2.docx  
路径: `/workspace/document2.docx`
状态: ✅ 成功
应用样式统计:
- 字体家族: 4 种
- 字体大小: 5 种
- 颜色: 5 种
- CSS规则: 3 条
备份文件: `/workspace/document2.docx.backup_20251025_160830`

### document3.docx
路径: `/workspace/document3.docx`
状态: ❌ 失败
错误信息: 文档格式不支持或文件损坏

## 说明
- 成功应用的文档会保留原始备份
- 如需恢复原始格式，请使用备份文件替换
- 样式应用基于Pandoc转换，可能存在格式差异
"""
    
    report_file = "/workspace/demo/sample_report.md"
    with open(report_file, 'w', encoding='utf-8') as f:
        f.write(sample_report)
    
    print(f"\n📁 示例报告文件: {report_file}")

def show_usage_examples():
    """显示使用示例"""
    print("\n💡 实际使用示例")
    print("=" * 50)
    
    examples = [
        {
            "title": "1. 抽取公司模板样式",
            "command": "python3 word_style_copier.py --extract company_template.docx"
        },
        {
            "title": "2. 应用模板样式到报告",
            "command": "python3 word_style_copier.py --apply company_template.docx monthly_report.docx"
        },
        {
            "title": "3. 批量处理项目文档",
            "command": "python3 word_style_copier.py --batch-apply template.docx doc1.docx doc2.docx doc3.docx"
        },
        {
            "title": "4. 生成详细处理报告",
            "command": "python3 word_style_copier.py --batch-apply template.docx *.docx --output processing_report.md"
        },
        {
            "title": "5. 交互式模式完整操作",
            "command": "python3 word_style_copier.py --interactive"
        }
    ]
    
    for example in examples:
        print(f"\n{example['title']}:")
        print(f"  {example['command']}")

def main():
    """主演示函数"""
    print("🔧 智能Word样式复制器 - 功能演示")
    print("=" * 50)
    
    # 检查系统环境
    if not check_pandoc():
        print("\n⚠️  请先安装Pandoc再运行演示")
        return
    
    # 执行各种演示
    demo_style_extraction()
    demo_interactive_mode()
    demo_batch_processing()
    demo_style_analysis()
    demo_report_generation()
    show_usage_examples()
    
    print("\n🎉 演示完成!")
    print("\n📚 更多信息请查看:")
    print("  - README.md: 详细使用说明")
    print("  - word_style_copier.py: 主程序")
    print("  - 运行: python3 word_style_copier.py --interactive")

if __name__ == "__main__":
    main()